package models

import "gorm.io/gorm"

// GoodsTag 商品主播标签
type GoodsTag struct {
	GlId int `gorm:"primary_key" json:"gl_id"` // 标签ID

	GoodsID int `json:"goods_id"` // 商品ID
	TagID   int `json:"tag_id"`   // 标签ID

	Tag Tag
}

// TableName 表名称
func (*GoodsTag) TableName() string {
	return "goods_tag"
}

type GoodsTagAll struct {
	GoodsID int `json:"goods_id"` // 商品ID
	TagId   int `json:"tag_id"`   // 标签ID
}

// TableName 表名称
func (*GoodsTagAll) TableName() string {
	return "goods_tag"
}

// AddTag 插入数据
func AddGoodsTagAllDB(tagList []GoodsTagAll, db *gorm.DB) (int, error) {
	result := db.CreateInBatches(tagList, len(tagList))
	if result.Error != nil {
		panic("failed to insert batch: " + result.Error.Error())
	}
	return 1, nil
}

func CleanGoodsTagAllDB(where map[string]interface{}, db *gorm.DB) error {
	cond, vals, errs := WhereBuild(where)
	if errs != nil {
		return errs
	}
	if err := db.Unscoped().Where(cond, vals...).Delete(&GoodsTagAll{}).Error; err != nil {
		return err
	}

	return nil
}
